In Static Timing Analysis flow, the timing margin is a very important concept that can absorb uncertainties in the timing analysis. These uncertainties include a delay calculator's accuracy with respect to the golden data from a SPICE simulation, various process variations, extraction noise, and so forth.
There are two general kinds of margin in Static Timing Analysis. One is an end point margin, which is a fixed timing number usually expressed in picoseconds, and which is added to a sequential cell's (flip flop's) setup/hold time in the cell library or used with a set_clock_uncertainty command in static timing analysis tool such as PrimeTime, offered by Synopsis, Inc. of Mountain View Calif. Another type of margin is a path based margin, which is typically expressed as a percentage value that is added by the set_timing_derate command in a static timing analysis tool.
Typically, only one kind of margin is used for one source of uncertainties. For example, path based percent margin is typically used for on chip variation margin. However, using one kind of margin or the other as seems best for different paths tends to be extremely labor intensive, as each path must be individually investigated and the desired margin type applied. On the other hand, using just one of the two types of timing margin as described above for all of the paths tends to create a variety of problems.
What is needed, therefore, is a method by which problems such as those described above can be overcome, at least in part.